﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UMLSynthesizer.LangAnalyzer.Elements
{
    /// <summary>
    /// Represents elements that are container for other elements with an interface.
    /// This class is base for namespaces, classes and interfaces
    /// </summary>
    public interface IContainerOfElementsBase : IElementBase
    {
        IEnumerable<IClassElement> ContainedClasses { get; }
        IEnumerable<IDelegateElement> ContainedDelegates { get; }
        IEnumerable<IEnumElement> ContainedEnums { get; }
        IEnumerable<IFieldElement> ContainedFields { get; }
        IEnumerable<IInterfaceElement> ContainedInterfaces { get; }
        IEnumerable<IMethodElement> ContainedMethods { get; }
        IEnumerable<INamespaceElement> ContainedNamespaces { get; }
        IEnumerable<IPropertyElement> ContainedProperties { get; }
        IEnumerable<IStructElement> ContainedStructs { get; }
    }
}
